# 1.定义
# 定义空列表
nameList = []

# 定义非空列表
nameList = ['qq', 'zxl', 'zyz', ['zs', 'ls']]

# 2.列表的 sequence 操作
# 2.1.列表索引
nameList[0]  # 就是 qq
nameList[1]  # 就是 zxl
nameList[2]  # 就是 zyz
nameList[3]  # 就是 ['zs', 'ls']
nameList[-1]  # 也是 ['zs', 'ls']
nameList[-3]  # 也是 zxl
nameList[-1][0]  # nameList[-1] 是 ['zs', 'ls'],  nameList[-1][0] 就是 ['zs', 'ls'] 里面的第一个元素，就是 zs

# 2.2.列表切片
nameList[0:3]  # 结果是   ['qq', 'zxl', 'zyz']
nameList[:3]  # 结果也是 ['qq', 'zxl', 'zyz']
nameList[2:4]  # 结果是   ['zyz', ['zs', 'ls']]
nameList[2:]  # 结果也是 ['zyz', ['zs', 'ls']]
nameList[-1][:1]  # 结果是   ['zs']   为什么？ 自己想一想
print(nameList)  # 结果还是 ['qq', 'zxl', 'zyz', ['zs', 'ls']]
# 上面对 nameList 的切片操作是产生新的对象，并不会改变 nameList 指向的对象

# 3.改变列表内容
# 3.1.通过索引
a = [1, 2, 3.14, 'hello', [7, 8, 9]]
a[0] = '你好'
print(a)  # ['你好', 2, 3.14, 'hello', [7, 8, 9]]

a1 = [1, 2, 3.14, 'hello', [7, 8, 9]]
a1[-1][-1] = '你好'
print(a1)  # ['你好', 2, 3.14, 'hello', [7, 8, '你好']]

# 3.2.通过变量
var = [7, 8, '你们好']
a2 = [1, 2, 3.14, 'hello', var]
print(a2)  # [1, 2, 3.14, 'hello', [7, 8, '你们好']]

# 3.3.使用表达式
var1 = 100
a3 = [1, 2, var1 * 3 + 20, 'hello', [7, 8, '你好']]
print(a3)

# 3.4.整体替换（切片赋值）
list1 = [0, 1, 2, 3, 4, 5]
list1[1:4] = ['a', 'b', 'c']
print(list1)

# 切片赋值支持替换的元素比被替换的元素多
list2 = [0, 1, 2, 3, 4, 5]
list2[1:4] = ['a', 'b', 'c', 'e', 'f', 'g', 'h']
print(list2)

# 4.合并两个列表
a = [1, 2, 3]
a += [4, 5, 6]
print(a)  # [1, 2, 3, 4, 5, 6]

# 5.判断元素是否在列表中
# a in var   # 检查 a 是否在var 中存在，存在返回True，否则返回False
# a not in var   # 检查 a 是否不在var 中，存在返回 False，否则返回 True
list3 = [1, 2, 3, 4, 'hello']
if 'hello' in list3:
    print('hello 在列表中存在')

if 'boy' not in list3:
    print('boy 在列表中不存在')


# 6.函数返回列表
def func1():
    age = input('请输入年龄：')
    gender = input('请输入性别：')
    return [age, gender]


print(func1())
